# Check requisite packages are installed.
packages <- c(
  "plotly", 
  "dplyr"
)
for (pkg in packages) {
  library(pkg, character.only = TRUE)
}

Disentangling Effects on the Viking Data

Load Data

ellipsisApply <- function(..., FUN) {
  lapply(as.list(...), FUN)
}

load("LM1996-NumPoolCom-QDat-2021-05.RData")
# Stop if not all are not null
stopifnot(all(unlist(ellipsisApply(
  FUN = function(bool) {!is.null(bool)},
  candidateData, 
  islandInteractionsOneEmptyTwo,
  islandInteractionsOneTwo,
  mats,
  paramFrame,
  plotScalingData,
  pools
))))
plotScaling <- plotly::plot_ly(
  plotScalingData,
  x = ~Basals,
  y = ~Consumers,
  z = ~CommunitySize,
  color = ~Dataset,
  colors = c("red", "blue", "black")
)

plotScaling <- plotly::add_markers(plotScaling)

plotScaling <- plotly::layout(
  plotScaling,
  scene = list(
    xaxis = list(type = "log"),
    yaxis = list(type = "log"),
    camera = list(
      eye = list(
        x = -1.25, y = -1.25, z = .05
      )
    )
  )
)

plotScaling

Persistence of Hybrid Communities

The idea is straightforward: after allowing interactions between islands, for islands that are not the same as one of the original communities, isolate the island and check to see what happens.

Invadability of Hybrid Communities

Looking at a longer time scale, what happens if/when invasions resume? Do the hybrid communities that emerged retain the uninvadability of the parent communities?

Presence of Mass Effects

We check to see what happens when we treat each community as a pool for the other and perform assembly. Are the results the same as the diffusion system?

Indirect Mutualism

Here, we check to see if the networks created by each community (hybrid or otherwise) has mutualism embedded in it.

LS0tDQp0aXRsZTogIkFuc3dlcmluZyBRdWVzdGlvbnM7IEdhdGhlciBEYXRhLCAyMDIxLTA1Ig0Kb3V0cHV0Og0KICBodG1sX25vdGVib29rOg0KICAgIGNvZGVfZm9sZGluZzogaGlkZQ0KLS0tDQoNCmBgYHtyIGxpYnN9DQojIENoZWNrIHJlcXVpc2l0ZSBwYWNrYWdlcyBhcmUgaW5zdGFsbGVkLg0KcGFja2FnZXMgPC0gYygNCiAgInBsb3RseSIsIA0KICAiZHBseXIiLA0KICAiUk1UUkNvZGUyIg0KKQ0KZm9yIChwa2cgaW4gcGFja2FnZXMpIHsNCiAgbGlicmFyeShwa2csIGNoYXJhY3Rlci5vbmx5ID0gVFJVRSkNCn0NCg0KIyBSZXNlcnZlZCBOYW1lcw0KY2FuZGlkYXRlRGF0YSA8LSBOVUxMDQppc2xhbmRJbnRlcmFjdGlvbnNPbmVFbXB0eVR3byA8LSBOVUxMDQppc2xhbmRJbnRlcmFjdGlvbnNPbmVUd28gPC0gTlVMTA0KbWF0cyA8LSBOVUxMDQpwYXJhbUZyYW1lIDwtIE5VTEwNCnBsb3RTY2FsaW5nRGF0YSA8LSBOVUxMDQpwb29scyA8LSBOVUxMDQpgYGANCg0KIyBEaXNlbnRhbmdsaW5nIEVmZmVjdHMgb24gdGhlIFZpa2luZyBEYXRhIHsudGFic2V0fQ0KDQojIyBMb2FkIERhdGENCmBgYHtyIGxvYWREYXR9DQplbGxpcHNpc0FwcGx5IDwtIGZ1bmN0aW9uKC4uLiwgRlVOKSB7DQogIGxhcHBseShhcy5saXN0KC4uLiksIEZVTikNCn0NCg0KbG9hZCgiTE0xOTk2LU51bVBvb2xDb20tUURhdC0yMDIxLTA1LlJEYXRhIikNCiMgU3RvcCBpZiBub3QgYWxsIGFyZSBub3QgbnVsbA0Kc3RvcGlmbm90KGFsbCh1bmxpc3QoZWxsaXBzaXNBcHBseSgNCiAgRlVOID0gZnVuY3Rpb24oYm9vbCkgeyFpcy5udWxsKGJvb2wpfSwNCiAgY2FuZGlkYXRlRGF0YSwgDQogIGlzbGFuZEludGVyYWN0aW9uc09uZUVtcHR5VHdvLA0KICBpc2xhbmRJbnRlcmFjdGlvbnNPbmVUd28sDQogIG1hdHMsDQogIHBhcmFtRnJhbWUsDQogIHBsb3RTY2FsaW5nRGF0YSwNCiAgcG9vbHMNCikpKSkNCmBgYA0KDQpgYGB7ciB0ZXN0UGxvdH0NCnBsb3RTY2FsaW5nIDwtIHBsb3RseTo6cGxvdF9seSgNCiAgcGxvdFNjYWxpbmdEYXRhLA0KICB4ID0gfkJhc2FscywNCiAgeSA9IH5Db25zdW1lcnMsDQogIHogPSB+Q29tbXVuaXR5U2l6ZSwNCiAgY29sb3IgPSB+RGF0YXNldCwNCiAgY29sb3JzID0gYygicmVkIiwgImJsdWUiLCAiYmxhY2siKQ0KKQ0KDQpwbG90U2NhbGluZyA8LSBwbG90bHk6OmFkZF9tYXJrZXJzKHBsb3RTY2FsaW5nKQ0KDQpwbG90U2NhbGluZyA8LSBwbG90bHk6OmxheW91dCgNCiAgcGxvdFNjYWxpbmcsDQogIHNjZW5lID0gbGlzdCgNCiAgICB4YXhpcyA9IGxpc3QodHlwZSA9ICJsb2ciKSwNCiAgICB5YXhpcyA9IGxpc3QodHlwZSA9ICJsb2ciKSwNCiAgICBjYW1lcmEgPSBsaXN0KA0KICAgICAgZXllID0gbGlzdCgNCiAgICAgICAgeCA9IC0xLjI1LCB5ID0gLTEuMjUsIHogPSAuMDUNCiAgICAgICkNCiAgICApDQogICkNCikNCg0KcGxvdFNjYWxpbmcNCmBgYA0KDQojIyBQZXJzaXN0ZW5jZSBvZiBIeWJyaWQgQ29tbXVuaXRpZXMNClRoZSBpZGVhIGlzIHN0cmFpZ2h0Zm9yd2FyZDogYWZ0ZXIgYWxsb3dpbmcgaW50ZXJhY3Rpb25zIGJldHdlZW4gaXNsYW5kcywgZm9yIGlzbGFuZHMgdGhhdCBhcmUgbm90IHRoZSBzYW1lIGFzIG9uZSBvZiB0aGUgb3JpZ2luYWwgY29tbXVuaXRpZXMsIGlzb2xhdGUgdGhlIGlzbGFuZCBhbmQgY2hlY2sgdG8gc2VlIHdoYXQgaGFwcGVucy4NCg0KIyMgSW52YWRhYmlsaXR5IG9mIEh5YnJpZCBDb21tdW5pdGllcw0KTG9va2luZyBhdCBhIGxvbmdlciB0aW1lIHNjYWxlLCB3aGF0IGhhcHBlbnMgaWYvd2hlbiBpbnZhc2lvbnMgcmVzdW1lPyBEbyB0aGUgaHlicmlkIGNvbW11bml0aWVzIHRoYXQgZW1lcmdlZCByZXRhaW4gdGhlIHVuaW52YWRhYmlsaXR5IG9mIHRoZSBwYXJlbnQgY29tbXVuaXRpZXM/DQoNCiMjIFByZXNlbmNlIG9mIE1hc3MgRWZmZWN0cw0KV2UgY2hlY2sgdG8gc2VlIHdoYXQgaGFwcGVucyB3aGVuIHdlIHRyZWF0IGVhY2ggY29tbXVuaXR5IGFzIGEgcG9vbCBmb3IgdGhlIG90aGVyIGFuZCBwZXJmb3JtIGFzc2VtYmx5LiBBcmUgdGhlIHJlc3VsdHMgdGhlIHNhbWUgYXMgdGhlIGRpZmZ1c2lvbiBzeXN0ZW0/DQoNCiMjIEluZGlyZWN0IE11dHVhbGlzbQ0KSGVyZSwgd2UgY2hlY2sgdG8gc2VlIGlmIHRoZSBuZXR3b3JrcyBjcmVhdGVkIGJ5IGVhY2ggY29tbXVuaXR5IChoeWJyaWQgb3Igb3RoZXJ3aXNlKSBoYXMgbXV0dWFsaXNtIGVtYmVkZGVkIGluIGl0Lg0K